package com.yyw.gulimall.member.abstracts;

import com.yyw.gulimall.member.entity.MemberEntity;
import com.yyw.gulimall.member.entity.MemberOauth2Entity;
import com.yyw.gulimall.member.vo.weibo.AccessTokenResult;

/**
 * @Classname RootOAuth2Service
 * @Description 抽象类 OAuth 的 基类
 * @Date 2020/12/16 14:36
 * @Created yyw
 */
public abstract class RootOAuth2Service {

    /**
     * 根据传入的AccessToken 封装成 第三方登录数据表， 统一数据传输
     * @param tokenResult
     * @return
     */
    public abstract MemberOauth2Entity packageData(AccessTokenResult tokenResult);

    /**
     * 封装Member 会员数据
     * 用于保存会员信息
     * @param tokenResult
     * @return
     */
    public abstract MemberEntity packageDataByMember(AccessTokenResult tokenResult);

    /**
     * 根据来源，查询第三方登录数据
     * 判断是第一次登录还是之前就登陆过
     * @param memberOauth2Entity
     * @return
     */
    public abstract MemberOauth2Entity getInfoBySource(MemberOauth2Entity memberOauth2Entity);
}
